using System.Collections.Generic;
using System.Drawing;
using Infragistics.UltraChart.Resources.Appearance;
using Infragistics.UltraChart.Shared.Styles;

namespace PluginFrame
{
	public interface ILightCurveConfiguration
	{
		double DefaultMaxLight { get; set; }

		double DefaultMinLight { get; set; }

		double LightAxisInterval { get; set; }

		double LightAxisIncreaseFactor { get; set; }

		double NormalIntervalCycle { get; set; }

		double SmallIntervalCycle { get; set; }

		double LargeIntervalCycle { get; set; }

		double CycleAxisNormalInterval { get; set; }

		double CycleAxisSmallInterval { get; set; }

		double CycleAxisLargeInterval { get; set; }

		List<SymbolIcon> CurveSymbolIcon { get; }

		List<SymbolIconSize> CurveSymbolIconSize { get; }

		List<LineDrawStyle> CurveDrawStyle { get; }

		List<int> CurveThickness { get; }

		List<double> CurveSplineTension { get; }

		Color ThresholdCurveColor { get; set; }

		Dictionary<double, double> YAxisAccelInc { get; set; }

		Dictionary<double, double> YAxisIncDec { get; set; }

		Dictionary<double, string> YAxisLabelFormat { get; set; }

		int YAxisIntervalCount { get; set; }

		double LogAxisZero { get; set; }

		Dictionary<string, bool> TooltipDisplay { get; set; }

		Dictionary<string, string> TooltipColumnName { get; set; }

		double GetCycleAxisTickInterval(double cycleCount);

		ScatterChartAppearance GenerateLineApperance(int channelIndex);
	}
}
